package com.asf.sofom.controller;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.servlet.ModelAndView;

import com.asf.sofom.domain.FormCuentas;
import com.asf.sofom.domain.OBancos;
import com.asf.sofom.domain.OCuentas;
import com.asf.sofom.repository.BancosDao;
import com.asf.sofom.repository.CuentasDao;

@Controller
@SessionAttributes
@RequestMapping(value = "/cuentas")
public class CuentasFormController {
	
	@Autowired
	CuentasDao cuentasDao;
	@Autowired
	BancosDao bancosDao;
	
	@RequestMapping(method = RequestMethod.POST, params = "Guardar")
	public String guardaCuenta(@ModelAttribute("altaCuentas")FormCuentas altaCuentas, BindingResult result){
		OCuentas cuenta = new OCuentas();
		cuenta.setId_cuenta(altaCuentas.getId_cuenta());
		cuenta.setBanco(altaCuentas.getBanco());
		cuenta.setDescripcion_cuenta(altaCuentas.getDescripcion_cuenta());
		cuenta.setEstatus(altaCuentas.getEstatus());
		cuenta.setFecha_apertura(altaCuentas.getFecha_apertura());
		cuenta.setSaldo(altaCuentas.getSaldo());
		cuenta.setTipo(altaCuentas.getTipo());
		System.out.println(cuenta.getTipo());
		//cuentasDao.setCuenta(cuenta);
		return "/cuentas";
	}
	
	@RequestMapping(method = RequestMethod.POST, params = "Cancelar")
	public String cancelar(){
		return "redirect:admin";
	}		
	
	@RequestMapping(method = RequestMethod.GET)
	public ModelAndView loadFormCuentas(){
		FormCuentas cuentas = new FormCuentas();
		ModelAndView mv = new ModelAndView();
		mv.setViewName("cuentas");
		mv.addObject("altaCuentas", cuentas);
		
		Map< String, String > bancosList = new HashMap<String, String>();
		List<OBancos> lbancos = bancosDao.getBancos();
		for(int i = 0; i<lbancos.size(); i++){
			bancosList.put(lbancos.get(i).getId_banco().toString(), lbancos.get(i).getNombre());
		}
		
		mv.addObject("bancosList", bancosList);
		return mv;
	}
	
}
